/**
 * 全站权限配置
 *
 */
import router from './router/router';
import store from '@/store';
import { validatenull } from '@/util/validate';
import NProgress from 'nprogress'; // progress bar
import 'nprogress/nprogress.css'; // progress bar style
NProgress.configure({ showSpinner: false });
// import { aesEncrypt } from '@/util/encryption';

router.beforeEach((to, from, next) => {
  NProgress.start();
  const meta = to.meta || {};
  if (store.getters.access_token) {
    if (store.getters.isLock && to.path !== '/lock') {
      next({ path: '/lock' });
    } else if (to.path === '/login') {
      next({ path: '/' });
    } else {
      if (
        // to.query &&
        // to.query.src &&
        // (to.query.src.includes('http') || to.query.src.includes('https'))
        to.hash &&
        to.query.src.indexOf(to.hash) === -1
      ) {
        to.query.src = to.query.src + to.hash;
      }
      const value = to.query.src || to.fullPath;
      const label = to.query.name || to.name;

      // // 针对外链跳转
      // if (value.includes('http') || value.includes('https')) {
      //   window.open(value, '_blank');
      //   return;
      // }
      if (
        meta.isTab !== false &&
        !validatenull(value) &&
        !validatenull(label)
      ) {
        store.commit('ADD_TAG', {
          label: label,
          value: value,
          params: to.params,
          query: to.query,
          group: router.$avueRouter.group || [],
        });
      }
      next();
    }
  } else {
    if (meta.isAuth === false) {
      next();
    } else {
      next('/login');
    }
  }
});

router.afterEach(() => {
  NProgress.done();
  let title = store.getters.tag.label;
  if (!store.getters.access_token) title = undefined;
  router.$avueRouter.setTitle(title);
});
